package com.bdqn;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.List;


public class Sjlx3 {
    public static void main(String[] args) {
        SAXReader reader=new SAXReader();
        try {
            Document document=reader.read(new File("ch02/Practical/手机收藏信息.xml"));
            Element rootElm=document.getRootElement();//获取所有跟元素(个人猜测是<Phone>)
//            Element add=rootElm.addElement("Brand"); //在phone下面创建一个brand
//            add.addAttribute("name","锤子"); //赋值
//            Element name=add.addElement("type"); //在brand下面创建type
//            name.addAttribute("name","pax"); //赋值

//            Element city= (Element) rootElm.elements().get(1); //获取phone下面的所有子元素(用了get的话可以取到第几个所以不用list接受)
            List<Element> elementList=rootElm.elements(); //获取所有元素存入list集合里面
            for (Element el:elementList) { //进行循环
                String name=el.attributeValue("name"); //获取节点name里面的值
                if (name.equals("张学牛马")){ //判断值是否是双引号里面的
                    el.getParent().remove(el);  //用el的父类删除el
                }
            }
//            Element element=city.getParent(); //自己删除不了自己所以找他的父亲
//            element.remove(city); //删除选中的
//            city.attribute("name").setText("张学牛马");//这样可以修改节点name属性的值
//            city.setText("张三"); //修改的是brand下面的所有
            OutputFormat format=OutputFormat.createPrettyPrint();
            format.setEncoding("UTF-8");
            XMLWriter writer=new XMLWriter(new FileWriter("ch02/Practical/手机收藏信息.xml"));
            writer.write(document);
            writer.close();
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
